package cn.stylefeng.guns.core.schedue.spring;


/**
 * 测试定时任务
 *
 * @author fengshuonan
 * @Date 2019/2/24 16:29
 */
public class SpringTasks {


//
//    /**
//     * 上一次开始执行时间点之后5秒再执行
//     *
//     * @author fengshuonan
//     * @Date 2019/2/24 16:31
//     */
//    @Scheduled(fixedRate = 5000)
//    public void beginAfter() {
//        System.err.println("<<<<<调试信息,注释掉SchedulingConfig类中的内容来关闭这个定时任务！>>>>> spring task执行 >>>>>开始之后5秒执行！");
//    }
//
//    /**
//     * 上一次执行完毕时间点之后5秒再执行
//     *
//     * @author fengshuonan
//     * @Date 2019/2/24 16:31
//     */
//    @Scheduled(fixedDelay = 5000)
//    public void finishAfter() {
//        System.err.println("<<<<<调试信息,注释掉SchedulingConfig类中的内容来关闭这个定时任务！>>>>> spring task执行 >>>>>执行之后5秒才执行！");
//    }
//
//    /**
//     * 上一次执行完毕时间点之后5秒再执行
//     *
//     * @author fengshuonan
//     * @Date 2019/2/24 16:31
//     */
//    @Scheduled(initialDelay = 1000, fixedRate = 5000)
//    public void stepAdd() {
//        System.err.println("<<<<<调试信息,注释掉SchedulingConfig类中的内容来关闭这个定时任务！>>>>> spring task执行 >>>>>第一次延迟1秒后执行，之后按fixedRate的规则每5秒执行一次！");
//    }
//
//    /**
//     * cron表达式执行
//     *
//     * @author fengshuonan
//     * @Date 2019/2/24 16:31
//     */
//    @Scheduled(cron = "*/10 * * * * *")
//    public void cron() {
//        System.err.println("<<<<<调试信息,注释掉SchedulingConfig类中的内容来关闭这个定时任务！>>>>> spring task执行 >>>>>每隔10秒执行一次！");
//    }


//    /**
//     * 取消报名
//     * 每1分钟执行一次
//     */
//    @Scheduled(cron = "0 */1 * * * *")
//    public void cancelSign() {
//        System.err.println("<<<<<取消报名定时任务");
//        Config config = ConstantFactory.me().getConfig();
//        //开启网络支付并且设置了几分钟未支付取消报名
//        if(config.isNetPay() && config.getPayTimeLimit() > 0){
//            //当前时间在报名时间
//            Semester semester = ConstantFactory.me().getSemester();
//            Date now = new Date();
//            boolean flag = false;
//            if(semester.getLgbStartTime()!=null && semester.getLgbEndTime()!=null){
//                //在老干部 报名期间
//                if(now.after(semester.getLgbStartTime()) && now.before(semester.getLgbEndTime())){
//                    flag = true;
//                }
//            }
//
//            if(semester.getOpenStartTime()!=null && semester.getOpenEndTime()!=null){
//                //在公开报名期间
//                if(now.after(semester.getOpenStartTime()) && now.before(semester.getOpenEndTime())){
//                    flag = true;
//                }
//            }
//            if(flag){
//                //在报名期间
//                List<ClassSign> list = classSignService.listNotPay(semester.getSemesterId()+"");
//
//            }
//
//        }
//    }
}


//        0 0 12 * * ? 每天12点触发
//        0 15 10 ? * * 每天10点15分触发
//        0 15 10 * * ? 每天10点15分触发
//        0 15 10 * * ? * 每天10点15分触发
//        0 15 10 * * ? 2005 2005年每天10点15分触发
//        0 * 14 * * ? 每天下午的 2点到2点59分每分触发
//        0 0/5 14 * * ? 每天下午的 2点到2点59分(整点开始，每隔5分触发)
//        0 0/5 14,18 * * ? 每天下午的 2点到2点59分(整点开始，每隔5分触发)
//        每天下午的 18点到18点59分(整点开始，每隔5分触发)
//        0 0-5 14 * * ? 每天下午的 2点到2点05分每分触发
//        0 10,44 14 ? 3 WED 3月分每周三下午的 2点10分和2点44分触发 （特殊情况，在一个时间设置里，执行两次或两次以上的情况）
//        0 59 2 ? * FRI 每周5凌晨2点59分触发
//        0 15 10 ? * MON-FRI 从周一到周五每天上午的10点15分触发
//        0 15 10 15 * ? 每月15号上午10点15分触发
//        0 15 10 L * ? 每月最后一天的10点15分触发
//        0 15 10 ? * 6L 每月最后一周的星期五的10点15分触发
//        0 15 10 ? * 6L 2002-2005 从2002年到2005年每月最后一周的星期五的10点15分触发
//        0 15 10 ? * 6#3 每月的第三周的星期五开始触发
//        0 0 12 1/5 * ? 每月的第一个中午开始每隔5天触发一次
//        0 11 11 11 11 ? 每年的11月11号 11点11分触发(光棍节)
//        0 51 15 26 4 ? 2016 2016年4月26日15点51分出发
//        0 30 0 * * ?  每天半夜12点30分执行一次（注意日期域为0不是24）
//        0 0 2 * * ?   每天凌晨2点
//        */5 * * * * ?  每隔5秒执行一次
//        0 */1 * * * ?  每隔1分钟执行一次